package com.sun.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration//相当于 spring的applicationContext.xml 中的bean
public class ConfigBean {
    //发送restfule的类，RestTemplate
    /*@Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }*/
    //配置负载均衡实现RestTemplate 核心Irule

    /**
     * IRule:
     * RoundRobinRule 轮询策略 默认策略
     * RandomRule 随机策略
     * AvailabilityFilteringRule ： 会先过滤掉，跳闸，访问故障的服务~，对剩下的进行轮询~
     * RetryRule ： 会先按照轮询获取服务~，如果服务获取失败，则会在指定的时间内进行，重试
     */
    @Bean
    @LoadBalanced//Ribbon
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }

    /**
     * 使用自己的策略
     * 可以不在这里配置
     */
   /* @Bean
    public IRule myRule(){
        return new RandomRule();
    }*/

   /* @Bean
    public IRule myRule(){
        return new SunRule();
    }*/

}
